
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
	// 定义变量i，用于循环计数
	int i=0;
	// 定义文件描述符fd1和fd2，初始值为-1
	int fd1,fd2 = -1;

	// 打开文件abc.txt，以读写、截断、创建的方式打开，权限为0644
	fd1 = open("abc.txt",O_RDWR | O_TRUNC |O_CREAT,0644);
	// 如果打开失败，输出错误信息
	if (fd1==-1){
		perror("open failed");
	}
	// 输出文件描述符fd1的值
	printf("fd1 = %d\n",fd1);
	// 将文件描述符fd1复制到文件描述符7
	fd2 = dup2(fd1,7);
	printf("fd2 = %d\n",fd2);
	// 无限循环
	while (1){
        // 计数器i加1
        i++;
        // 如果计数器i等于10，跳出循环
        if(i==10)break;
		// 等待1秒
		sleep(1);
		// 向文件描述符fd1写入"aa\n"
		write(fd1,"cc-",2);
		// 输出"[write in aa]"
		printf("[write in aa]\n");
		// 等待2秒
		sleep(1);
		// 向文件描述符fd2写入"bb\n"
		write(fd2,"dd-",2);
		// 输出"[write in bb]"
		printf("[write in bb]\n");
	}
	// 关闭文件描述符fd1
	close(fd1);
}